package top.infopub.mgr.cap.service;

import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import top.infopub.dto.cap.FinPlanSubDto;
import top.infopub.dto.cap.FinancingPlanDto;
import top.infopub.generic.GenericService;
import top.infopub.mgr.cap.domain.FinancingPlanDomain;
import top.infopub.mgr.cap.jsonvo.FinancingPlanJsonVo;
import top.infopub.mgr.cap.vo.FinancingPlanVo;
import top.infopub.mgr.common.vo.RspVo;
import top.infopub.model.cap.FinancingInstitution;
import top.infopub.model.cap.FinancingName;
import top.infopub.model.cap.FinancingPlan;
import top.infopub.model.mkt.ProjectAttachment;
import top.infopub.security.vo.AuthorizationVO;

import java.util.List;

public interface FinancingPlanService   extends GenericService<FinancingPlan, String> {
    /**
     * 根据条件查询融资方案列表
     * @param financingPlanVo
     * @return
     * @see
     */
    Page<FinancingPlanDomain> selectByDomainWhere(Page<FinancingPlanDomain> page, FinancingPlanVo financingPlanVo);

    FinancingPlanJsonVo queryDetailById(@Param("id") String id);

    /**
     * 编辑信息
     * @param financingPlanDto
     * @param attachmentList
     * @param submitType
     * @param vo
     * @return
     */
    RspVo edit(FinancingPlanDto financingPlanDto, List<FinPlanSubDto> detailList,
               List<ProjectAttachment> attachmentList, Integer submitType, AuthorizationVO vo);


    List<FinancingName> queryListFinancingName();

    List<FinancingInstitution> queryListInstitutions(String proCode);

    List<FinPlanSubDto> queryDetailFinOrgList(String proCode);
}
